ROS 2

https://docs.ros.org/
Robot Operating System 2 第二代机器人操作系统
是一个用于机器人软件开发的开源框架。它提供了一套工具和库,使得开发者能够更容易地创建复杂的机器人应用程序。ROS的核心目标是实现代码的复用、模块化以及跨平台的机器人软件开发。
模块化、分布式

实际上是软件库和工具集,用于简化在各种机器人平台上创建复杂而强大的机器人行为的任务,即不重复造轮子。
ROS2 是在 ROS 的基础上设计开发的第二代机器人操作系统,可以帮助我们简化机器人开发任务,本质上是加速机器人落地的软件库和工具集

一个面向机器人的中间件、库和工具的集合。它为机器人应用开发提供了一种灵活的框架,用于编写机器人软件。它能够帮助开发者更容易地构建复杂的机器人系统,使得软件的复用性更高,

ROS2 相关基础
ROS2 的安装
ROS2 Architecture
ROS2 Package
ROS2 Message
ROS2 Communication
Ros2 bag
ROS and mqtt 代码使用

Pasted image 20250501214912.png

概念 Concepts

Basic Concepts

ROS2 Nodes
ROS2 Topics
ROS2 Services
RCL

实际实践

创建工作区
编写节点 rclcpp 或 rclpy
编译构建 colcon build
运行节点 ros2 run
测试通信 ros2 topic echo / ros2 topic pub

相关工具

相关工具 简要介绍
Rviz2 Data
RQT GUI Framwork
Gazebo
Colcon

Robot Operating System 2

ROS 2 (Robot Operating System 2) 并不是一个传统意义上的操作系统(如 Windows 或 Linux),而是一个用于构建机器人应用的开源软件框架和中间件。它提供了一系列库、工具和约定,旨在简化创建复杂、鲁棒的机器人行为的难度。

设计目标:面向真实世界应用

ROS 2 是对其前身 ROS 1 的彻底重新设计,旨在解决 ROS 1 在真实世界商业和研究应用中遇到的局限。其核心设计目标包括:

核心概念:计算图模型 (Computation Graph)

一个 ROS 2 系统由一系列松散耦合的、可独立运行的节点 (Nodes) 组成,这些节点通过一个通用的通信层进行交互,形成一个“计算图”。

1. 节点 (Nodes)

节点是 ROS 2 中的基本可执行单元。一个机器人系统通常由许多各司其职的节点组成。例如,一个节点负责从摄像头读取图像,另一个节点负责处理图像以检测障碍物,还有一个节点负责根据障碍物信息控制电机。

2. 通信机制

节点之间通过三种核心机制进行通信:

3. 其他概念

与 ROS 1 的主要区别

特性 ROS 1 ROS 2
底层通信 TCPROS/UDPROS (自定义) DDS (Data Distribution Service),一个工业级、标准化的实时中间件。
多机器人通信 需要复杂的手动网络配置 原生支持,可自动发现和通信。
实时性 支持不佳 设计核心,提供实时安全的 C++客户端库。
官方支持语言 C++, Python C++, Python (均为一等公民)
安全性 基本没有 内置安全机制,支持加密、认证和访问控制。

核心生态系统


机器人